package com.lanou3g.greendao;


import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;

public class MyClass {
    public static void main(String[] args) {
        // 创建Schema对象
        // 构造方法第一个参数为数据库版本号
        // 第二个参数为自动生成的实体类将要存放的位置,前面为我的Android Module的包名

        Schema schema = new Schema(1, "com.lanou.lenanapp.entity.greendao");
        // 添加需要创建的实体类信息
        addJoke(schema);//段子
        addImage(schema);//趣图
        addVideo(schema);//视频
        addSpecial(schema);//专辑
        addCollect(schema);//收藏段子
        addCollectImage(schema);//收藏图片
        addLogin(schema);//账号密码的数据库
        addLoginOne(schema);//登录的数据库(只有一个账号);
        addIsChange(schema);//决定登录后跳转到哪个页面的表
        try {
            // 创建实体类.第二个参数填Android Module的路径
            new DaoGenerator().generateAll(schema, "./app/src/main/java");
        } catch (Exception e) {
            e.printStackTrace();
        }


    }

    /**
     * 添加将要创建的实体类的信息,会根据类名生成数据库的表,属性名生成数据库的字段<p>
     * 当然如果想建多张表,可以创建多个Entity对象
     *
     * @param schema
     */

    private static void addIsChange(Schema schema) {
        // 指定需要生成实体类的类名,类名确定了那么表名也是根据这个类名来自动命名的,例如下面这个,生成的表名叫做is_change_intent
        Entity entity = schema.addEntity("IsChangeIntent");
        // 指定自增长主键
        entity.addIdProperty().autoincrement().primaryKey();
        // 添加类的属性,根据属性生成数据库表中的字段 下面包含两种类型 int 和 String
        entity.addIntProperty("isChange");
    }

    //登录的数据库
    private static void addLoginOne(Schema schema) {

        Entity entity = schema.addEntity("LoginOneEntity");

        entity.addStringProperty("onephone").primaryKey();
        entity.addStringProperty("onename");
        entity.addStringProperty("onepsw");
    }

    //账号密码的数据库
    private static void addLogin(Schema schema) {

        Entity entity = schema.addEntity("LoginEntity");

        entity.addStringProperty("phone").primaryKey();
        entity.addStringProperty("name");
        entity.addStringProperty("psw");
    }

    //收藏图片实体类
    private static void addCollectImage(Schema schema) {
        Entity entity = schema.addEntity("CollectImageEntity");

        entity.addIdProperty().autoincrement().primaryKey();
        entity.addStringProperty("wid");
        entity.addStringProperty("update_time");
        entity.addStringProperty("wbody");
        entity.addStringProperty("comments");
        entity.addStringProperty("likes");
        entity.addStringProperty("is_gif");
        entity.addStringProperty("wpic_small");
        entity.addStringProperty("wpic_middle");
        entity.addStringProperty("wpic_large");
        entity.addStringProperty("w_sensitive");

    }

    //收藏段子实体类
    private static void addCollect(Schema schema) {
        Entity entity = schema.addEntity("CollectEntity");

        entity.addStringProperty("wid").primaryKey();
        entity.addStringProperty("update_time");
        entity.addStringProperty("wbody");
        entity.addStringProperty("comments");
        entity.addStringProperty("likes");
        entity.addStringProperty("w_sensitive");
    }

    //专辑实体类
    private static void addSpecial(Schema schema) {
        Entity entity = schema.addEntity("SpecialEntity");
        entity.addIdProperty().autoincrement().primaryKey();
        entity.addStringProperty("aid");
        entity.addStringProperty("aname");
        entity.addStringProperty("aicon");
        entity.addStringProperty("adesc");
        entity.addStringProperty("is_long");
        entity.addStringProperty("update_time");
        entity.addStringProperty("likes");
        entity.addStringProperty("series_id");
        entity.addStringProperty("series_name");
    }

    //视频实体类
    private static void addVideo(Schema schema) {
        Entity entity = schema.addEntity("VideoEntity");
        entity.addIdProperty().autoincrement().primaryKey();
        entity.addStringProperty("wid");
        entity.addStringProperty("update_time");
        entity.addStringProperty("wbody");
        entity.addStringProperty("comments");
        entity.addStringProperty("likes");
        entity.addStringProperty("vpic_small");
        entity.addStringProperty("vpic_middle");
        entity.addStringProperty("vplay_url");
        entity.addStringProperty("vsource_url");
        entity.addStringProperty("fetch_play_url");
        entity.addStringProperty("site_code");
        entity.addStringProperty("no_copyright");
        entity.addStringProperty("w_sensitive");
        entity.addIntProperty("isChange");
    }

    //趣图实体类
    private static void addImage(Schema schema) {
        Entity entity = schema.addEntity("ImageEntity");
        entity.addIdProperty().autoincrement().primaryKey();
        entity.addStringProperty("wid");
        entity.addStringProperty("update_time");
        entity.addStringProperty("wbody");
        entity.addStringProperty("comments");
        entity.addStringProperty("likes");
        entity.addStringProperty("wpic_s_width");
        entity.addStringProperty("wpic_s_height");
        entity.addStringProperty("wpic_m_width");
        entity.addStringProperty("wpic_m_height");
        entity.addStringProperty("is_gif");
        entity.addStringProperty("wpic_small");
        entity.addStringProperty("wpic_middle");
        entity.addStringProperty("wpic_large");
        entity.addStringProperty("w_sensitive");
        entity.addIntProperty("isChange");
    }

    //段子实体类
    private static void addJoke(Schema schema) {
//指定需要生成实体类的类名 表名和类名相同
        Entity entity = schema.addEntity("JokeEntity");
        //添加类得属性,根据属性生成数据库表中的字段
        entity.addIdProperty().autoincrement().primaryKey();
        entity.addStringProperty("wid");
        entity.addStringProperty("update_time");
        entity.addStringProperty("wbody");
        entity.addStringProperty("comments");
        entity.addStringProperty("likes");
        entity.addStringProperty("w_sensitive");
        entity.addIntProperty("isChange");
        entity.addIntProperty("isChangefavourate");
    }
}
